Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

493
Visualizações
Obteniendo "Error fatal en, línea 0 # Error fatal de tamaño no válido de JavaScript 178414678" para un bucle for anidado

Así que tengo este código Javascript simple en el que comparo los artículos del carrito almacenados en la base de datos con los nuevos artículos del carrito enviados por el cliente. Pero recibo este nuevo error que nunca antes había visto:

 # # Fatal error in , line 0 # Fatal JavaScript invalid size error 178414678 # # # #FailureMessage Object: 000000DCF17BE620 1: 00007FF7F50A401F v8::internal::CodeObjectRegistry::~CodeObjectRegistry+112511 2: 00007FF7F4FC116F v8::CFunctionInfo::HasOptions+7055 3: 00007FF7F5C97302 V8_Fatal+162 4: 00007FF7F5820C65 v8::internal::FactoryBase<v8::internal::Factory>::NewFixedArray+101 5: 00007FF7F56CA463 v8::internal::FeedbackNexus::ic_state+62771 6: 00007FF7F56E0FC0 v8::Message::GetIsolate+15840 7: 00007FF7F5555681 v8::internal::CompilationCache::IsEnabledScriptAndEval+26849 8: 00007FF7F59F34B1 v8::internal::SetupIsolateDelegate::SetupHeap+494417 9: 000001F9C44485C2

Lo que hace el código es verificar si la identificación del producto es la misma o no en ambas matrices. Si es así, simplemente reemplazará la unidad de artículo del carrito de la base de database cart item con la unidad client-sent cart item . Si no es así, simplemente empujará el client-sent cart item a la matriz database-stored cart items . Eso es todo lo que hace.

El código:

 const dbCartItems = [ { productID: '1233433', unit: 1 }, { productID: 'asfa34wr', unit: 2 } ]; const clientCartItems = [ { productID: 'dfhgdf46t3', unit: 4 }, { productID: 'hgfh566', unit: 1 }, { productID: '32523', unit: 1 } ]; for ( let i = 0; i < dbCartItems.length; i++ ) { for ( let j = 0; j < clientCartItems.length; j++ ) { if ( dbCartItems[ i ].productID === clientCartItems[ j ].productID ) { dbCartItems[ i ].unit = clientCartItems[ j ].unit; } else { dbCartItems.push( clientCartItems[ j ] ); } } } console.log( dbCartItems );

¿Alguien puede explicar qué está mal con el código que arroja este tipo de error que nunca antes había visto?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Está agregando continuamente a la misma matriz que resulta en un bucle infinito. Cree una nueva matriz y agréguele elementos.

about 4 years ago · Juan Pablo Isaza Relatório

0

Toda tu lógica es incorrecta. Está utilizando bucles anidados y eso generaría resultados incorrectos incluso si usa una nueva matriz para almacenar elementos en ella.

Su código debería verse así:

 // get all product ids from dbCartItems array const dbCartItemsProductIds = dbCartItems.map(cartItem => cartItem.productID); for(let i=0;i<clientCartItems.length;i++) { const indexOfClientItemInDb = dbCartItemsProductIds.indexOf(clientCartItems[i].productID); // if clientCartItemProductId found in dbCartItemsProductIds if(indexOfClientItemInDb!== -1) { dbCartItems[indexOfClientItemInDb].unit = clientCartItems[i].unit; } else { dbCartItems.push(clientCartItems[i]); } }

Primero, obtenga todos los productIds de dbCartItems (para que coincidan con los productids de clientCartItems . Ahora, para cada clientCartItems , verifique si el id del producto del artículo está presente en dbCartItemsProductIds , luego cambie el número de unidades, de lo contrario, agregue el artículo a dbCartItems .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda